package com.yixun.qfbao.api.service;

import com.yixun.qfbao.apidto.*;

import java.util.Map;

/**
 * [文件名称]<br>
 * ThirdPartyApiService.java<br>
 * <br>
 * [文件描述]<br>
 *  third party interface<br>
 * <br>
 * 第三方接口
 * 2017-11-27<br>
 * 
 * @author jzliu
 * @version 1.00
 */
public interface ThirdPartyApiService {
	
	/**
	 * （1）	发送验证码
	 * @param reqDto
	 * @return
	 */
	SendVerificationCodeResDto sendVerificationCode(SendVerificationCodeReqDto reqDto);

	/**
	 * 重置密码发送验证码
	 * @param reqDto
	 * @return
	 */
	SendValidateCodeForPwdResDto sendValidateCodeForPwd(SendValidateCodeForPwdReqDto reqDto);
	
	/**
	 * （2）	生产微信二维码
	 * @param reqDto
	 * @return
	 */
	CreateQRCodeResDto createQRCode(CreateQRCodeReqDto reqDto);
	
	/**
	 * 获取生成的二维码上传至七牛的链接
	 * @param content
	 * @return
	 */
	String getQrCodeQiniuUrl(String content);
	/**
	 * （3）	获取微信appid
	 * @param reqDto
	 * @return
	 */
	Map<String, String> getWeiXinAppid(GetWeiXinJsTicketReqDto reqDto);
	
	/**
	 * （4）	获取微信js_ticket
	 * @param reqDto
	 * @return
	 */
	Map<String,String> getWeiXinJsTicket(GetWeiXinJsTicketReqDto reqDto);

    /**
     * 获取微信js_ticket
     * @param accessToken
     * @return
     */
	Map<String, String> getWeiXinJsTicketByToken(String accessToken);
	
	/**
	 * （5）	获取转客信息
	 * @param reqDto
	 * @return
	 */
	GetCPToM2InfoResDto getCPToM2Info(GetCPToM2InfoReqDto reqDto);
	
	/**
	 * （6）	获取M2楼盘
	 * @param reqDto
	 * @return
	 */
	GetPremisesByM2ResDto getPremisesByM2(GetPremisesByM2ReqDto reqDto);
	
	/**
	 * （7）	转客
	 * @param reqDto
	 * @return
	 */
	CustomerToM2ResDto customerToM2(CustomerToM2ReqDto reqDto);
	/**
	 * （8）判断是否是和M2合作的商户
	 * @param reqDto
	 * @return
	 */
	IsM2MerchantResDto isM2Merchant(IsM2MerchantReqDto reqDto);

    String getAccessTokenDefault(String domain, String companyUuid, String loginType);

	String getWeAppAccessTokenDefault(String loginType);

	/**
	 * 发送验真短信
	 * @param reqDto
	 * @return
	 */
	SendMobileCheckCodeResDto sendMobileCheckCode(SendMobileCheckCodeReqDto reqDto);

	/**
	 * 校验验真短信
	 * @param reqDto
	 * @return
	 */
	CheckMobileCheckCodeResDto checkMobileCheckCode(CheckMobileCheckCodeReqDto reqDto);

}
